package main;

import net.jcip.annotations.Immutable;
import storage.CareTaker;
import storage.CareTakerImpl;
import surface.CanvasImpl;
import surface.Canvas;
import ui.Cli;
import ui.Gui;

import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;

@Immutable
public class MainModule extends AbstractModule {

	@Override
	protected void configure() {
		bind(CareTaker.class).to(CareTakerImpl.class);
		bind(Canvas.class).to(CanvasImpl.class);
	}
	
	public static void main(String[] args) {
		Injector injector = Guice.createInjector(new MainModule());
		injector.getInstance(Gui.class);
		Cli cli = injector.getInstance(Cli.class);
		cli.mainMenu();
	}
}
